#ifndef IBINDING_ALGORITHM_H
#define IBINDING_ALGORITHM_H

#include <QtCore/QSet>

namespace core
{
class BasicTime;
}

namespace wfnet
{
class Arc;
class Binding;
class Transition;

class IBindingAlgorithm
{
public:
    virtual bool bind(Binding& binding,
        const core::BasicTime& globalClock,
        core::BasicTime& proposedGlobalClock,
        const QSet<const Arc* >& inputArcs,
        const Transition* transition = 0) const = 0;
    virtual ~IBindingAlgorithm() {}
};

} // namespace wfnet

#endif
